#ifndef LIST_H
#define LIST_H

/* Abstract datatype that represents a node in a list. */
typedef struct _list_t {
    int i;
    struct _list_t *next; 
} list_t;

/* Initialize the list. */
void list_init(list_t **list, int i);

/* Free-up memory space used by the list. */
void list_free(list_t **list);

/* Function to add a new element with value i. */
void list_add(list_t **list, int i);

/* Returns the next element of the list. */
int list_iter(list_t *list);

#endif /* LIST_H */
